package com.example.service;

import com.example.common.Result;
import com.example.dto.MenuPermissionDTO;

import java.util.List;

/**
 * 菜单权限绑定服务接口
 */
public interface MenuPermissionService {
    
    /**
     * 为菜单绑定权限
     */
    Result<String> bindPermissionsToMenu(MenuPermissionDTO dto);
    
    /**
     * 获取菜单绑定的权限ID列表
     */
    Result<List<Long>> getMenuPermissions(Long menuId);
    
    /**
     * 获取权限绑定的菜单ID列表
     */
    Result<List<Long>> getPermissionMenus(Long permissionId);
    
    /**
     * 删除菜单的所有权限绑定
     */
    Result<String> removeMenuPermissions(Long menuId);
    
    /**
     * 删除权限的所有菜单绑定
     */
    Result<String> removePermissionMenus(Long permissionId);
    
    /**
     * 检查菜单权限绑定是否存在
     */
    Result<Boolean> checkMenuPermissionExists(Long menuId, Long permissionId);
    
    /**
     * 批量为多个菜单绑定权限
     */
    Result<String> batchBindPermissionsToMenus(List<Long> menuIds, List<Long> permissionIds);
    
    /**
     * 同步更新角色权限（当菜单权限绑定发生变化时）
     */
    Result<String> syncRolePermissions(Long menuId);
} 